a & (a - 1)的含义

图片还没有哦

可以理解为,将 a 的二进制为 1 的位置为 0

1
2
3
4
5
6
7
int a = 1000;
int count = 0;
while (a != 0) {
a = a & (a - 1);
count++;
}
//这时count 为6

1000的二进制为‭001111101000‬

由上看出1000有6个1,当变为0的时候需要 a & (a - 1)6次,所以上面的count为6

本文标题:a & (a - 1)的含义

文章作者:游戏人生

发布时间:2019年12月23日 - 14:12

最后更新:2020年12月27日 - 12:12

原始链接:http://www.tjl-myblog.cn/a & (a - 1)的含义.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------